前端开发,JavaScript判断某个参数是否为空常见方式 您所在的位置:网站首页 js 判断变量是否定义 前端开发,JavaScript判断某个参数是否为空常见方式

前端开发,JavaScript判断某个参数是否为空常见方式

2024-07-15 06:01| 来源: 网络整理| 查看: 265

判断为空的方法千篇一律,此处只是针对本人工作中遇到的一些坑做出总结,大家可以根据自己的工作需要自由组合,封装成一个公共方法,避免一些不必要的问题。

1.在操作该参数前,做非空判断

//常用作临时解决线上报错等问题 var a = ''; if(a && a.toLowerCase()){ console.log('参数不为空') }else{ console.log('参数为空') }

2.typeof,判断类型是否是undefined

var b; if(typeof b == 'undefined') { console.log('b is undefined'); }

3.直接判断一个字符串是否为空

var c = ''; if(c === ''|| c === null || c === undefined) { console.log('参数为空'); } else { console.log('参数不为空'); }

4.使用 string.trim()函数

//trim()会移除字符串首尾的空格,可以字符串调用后,在取其length判断是否为0 var d = ''; d.trim().length == 0;//true,字符串是空字符串 d = ' '; d.trim().length == 0;//true,字符串是空字符串 d = ' 1 '; d.trim().length == 0;//false,此时 d.trim() == ‘1’ 字符串不为空

5.正则表达式: /(^\s)|(\s$)/g**

//当浏览器不支持tirm()时,请使用该正则,功能与用法通 tirm() 一致 var e = ''; e.replace(/(^\s*)|(\s*$)/g, '').length == 0;//true,字符串是空字符串 e = ' '; e.replace(/(^\s*)|(\s*$)/g, '').length == 0;//true,字符串是空字符串 e = ' 1 '; e.replace(/(^\s*)|(\s*$)/g, '').length == 0;//false,此时 d.trim() == ‘1’ 字符串不为空

6.判断一个数组是否为空

var f = []; if(f.length == 0) { console.log('数组为空'); } else { console.log('数组不为空'); } //['',''],一般这种形式不纳入考虑,这种情况下length不为0;

7.判断一个对象是否为空

//方法一:将对象转行成JSON字符串形式,判断字符串是否为‘{}’ var g = {}; var h = JSON.stringify(g) == '{}'; console.log(h); //方法二:for...in循环 var obj = {}; var i = function () { for (var item in obj) { return false;//不为空 } return true;//为空 } console.log(i()); //方法三:jQuery的$.isEmptyObject() //此方法是jQuery将方法二的for...in进行了封装,此时需要依赖于jQuery var data = {}; var j = $.isEmptyObject(data); console.log(j);

8.检测对象的属性是否存在

var k = {}; if(!k.age) { console.log('没有age属性'); }

9.直接使用未定义的对象来判断,也会出错

//注意判断或调取时,变量名是否书写正确 if(!obj111){ console.log('没有obj111这个变量'); obj111 = {};//Uncaught ReferenceError: obj111 is not defined }

10.使用in运算符

//obj1 是一个变量,如果当前页面未定义,则 ‘obj1’ in window 会返回false if(!('obj1' in window)) { console.log('没有obj1这个变量'); }

11.使用hasOwnProperty()

//检查一个属性是否是某个对象的自带属性,没有定义对象默认指当前window对象 if(!this.hasOwnProperty('obj2')){ console.log('没有obj12这个变量'); //当前页面没有定义obj2 this.obj2 = {}; }


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有